This solution's encoding was based upon a much faster design.

The basic idea for the encoding starts with the idea of binary coded decimals.  If the first atom is salt, the remaining four can be split into pairs, and each encodes one metal up to copper.  The order of Lead->Iron->Tin->Copper just happened to be what was easiest for me to code.

Importantly, this binary-coded metal requires minimal state.  You don't have to worry about division or carry bits or any of that nonsense.

How to encode the remaining 16 values, though?

My breakthrough came when I realized the remaining 16 would all have either silver or gold.  When the first atom is fire, the second pair encodes lead/iron/tin/copper as usual.  However, the meaning of the first pair changes.  One of them indicates whether to create silver or gold, and the other will invert the output if it is fire.

These pieces of state get encoded on the output metal itself, allowing the output mechanism to perform the conditional logic.

===== 'NEW SOLUTION 5 (Copy)' =====
 0.	salt-salt-salt-salt-salt	 => 	Lead-Lead
 1.	salt-salt-salt-salt-FIRE	 => 	Lead-Iron
 2.	salt-salt-salt-FIRE-salt	 => 	Lead-Tin
 3.	salt-salt-salt-FIRE-FIRE	 => 	Lead-Copper
 4.	salt-salt-FIRE-salt-salt	 => 	Iron-Lead
 5.	salt-salt-FIRE-salt-FIRE	 => 	Iron-Iron
 6.	salt-salt-FIRE-FIRE-salt	 => 	Iron-Tin
 7.	salt-salt-FIRE-FIRE-FIRE	 => 	Iron-Copper
 8.	salt-FIRE-salt-salt-salt	 => 	Tin-Lead
 9.	salt-FIRE-salt-salt-FIRE	 => 	Tin-Iron
10.	salt-FIRE-salt-FIRE-salt	 => 	Tin-Tin
11.	salt-FIRE-salt-FIRE-FIRE	 => 	Tin-Copper
12.	salt-FIRE-FIRE-salt-salt	 => 	Copper-Lead
13.	salt-FIRE-FIRE-salt-FIRE	 => 	Copper-Iron
14.	salt-FIRE-FIRE-FIRE-salt	 => 	Copper-Tin
15.	salt-FIRE-FIRE-FIRE-FIRE	 => 	Copper-Copper
16.	FIRE-salt-salt-salt-salt	 => 	Silver-Lead
17.	FIRE-salt-salt-salt-FIRE	 => 	Silver-Iron
18.	FIRE-salt-salt-FIRE-salt	 => 	Silver-Tin
19.	FIRE-salt-salt-FIRE-FIRE	 => 	Silver-Copper
20.	FIRE-salt-FIRE-salt-salt	 => 	Lead-Silver
21.	FIRE-salt-FIRE-salt-FIRE	 => 	Iron-Silver
22.	FIRE-salt-FIRE-FIRE-salt	 => 	Tin-Silver
23.	FIRE-salt-FIRE-FIRE-FIRE	 => 	Copper-Silver
24.	FIRE-FIRE-salt-salt-salt	 => 	Gold-Lead
25.	FIRE-FIRE-salt-salt-FIRE	 => 	Gold-Iron
26.	FIRE-FIRE-salt-FIRE-salt	 => 	Gold-Tin
27.	FIRE-FIRE-salt-FIRE-FIRE	 => 	Gold-Copper
28.	FIRE-FIRE-FIRE-salt-salt	 => 	Lead-Gold
29.	FIRE-FIRE-FIRE-salt-FIRE	 => 	Iron-Gold
30.	FIRE-FIRE-FIRE-FIRE-salt	 => 	Tin-Gold
31.	FIRE-FIRE-FIRE-FIRE-FIRE	 => 	Copper-Gold